iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
1
自我挑戰組

新手101入坑區塊鏈系列 第 12

Day12 - 各種攻擊、漏洞 I

  • 分享至 

  • xImage
  •  

區塊鏈網路建構在實體網路之上,大致可分四層探討:
https://ithelp.ithome.com.tw/upload/images/20200927/20127608bxQDQ2NxWb.png
(圖片來源: https://www.ithome.com.tw/news/139472)

應用層:就是「應用場景」。
舉例如比特幣的金融經濟,或是部署在以太坊上的智能合約應用,透過程式執行金融產業的運作等。(註:智能合約是一個用程式碼寫好在那邊的規則,時間一到就能觸發,並按照程式碼執行,不會有延宕或猶疑的空間)
常見弱點有:

  1. 智能合約弱點
  2. 邏輯錯誤

共識層:規範共識機制演算法
決定由誰記帳的選擇,常見有的共識證明機制有
工作量證明機制(Proof of Work,Pow)
權益證明機制(Proof of Stake,PoS)
權威證明(Proof of Authority,PoA)
代理權益證明(Delegated Proof of Stake,DPos)

常見攻擊有:

  1. 51攻擊:假設全球比特幣有n個節點礦工,你又額外「創造」了n+1個礦工節點,創造「過半」的優勢,作票來讓大家通過你的交易。
  2. 女巫攻擊:當你說服過半的節點投票通過你的交易,而這筆交易是錯誤的,卻被寫入區塊保存。
    過程(教你怎麼駭):比特幣的區塊鏈上,目前有近一萬個節點,條件是你必須賄賂全球各地的5000個節點,讓他們相信你的交易是正確的,你手上可能要有相當大的利益賄賂這些節點。
    結果:就算你賄賂成功,大家也不會把自己真正的交易再放到這條鏈上,這條鏈的價值就會形同毫無存在,他們的飯碗也沒了。
    解決:這種情形,若能提高產生出每一「票」的成本,減少相對的作票就能解決。
  3. 雙花問題:簡單說,無限提領的ATM。你用簡單的交易,換得了很多服務。
    過程:
    (#: 你產生的區塊)
    #1: 我是礦工,我有$1000
    #2: 我花$1000吃了一頓日式料理
    #3: 當料理店老闆看到#3出現後,他認為#2應該安全,所以給我日式料理
    #4: 我說因為我在 #1有$1000,故此時我在隔壁燦x買相機
    #5: 然後我用超強算力挖到#5,超車成為最強鏈
    #6: 然後為求保險,我再挖一個#6
    於是我跑去買一部二手車的交易寫在#6,並讓#2、#3憑空消失,料理店老闆形同免費提供你一餐,如此推論,要是順利有#7、#8、#9、#10、…,的出現,那麼之後買車將會變成無償提供。

這裡就得到一個結論:當壞人有過半算力,比一半以上礦工都強,才會變成最長鏈
所以說超過1~2個區塊很平常,通常需要6次驗證後交貨,比較不容易有超車攻破的可能。

請繼續鎖定明天的漏洞第二集~


上一篇
Day11 - 區塊鏈的百慕達--不可能三角
下一篇
Day13 - 各種攻擊、漏洞 II
系列文
新手101入坑區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言